package com.zmn.oms.zmn.business.interfaces.redistribute;

import com.zmn.oms.common.exception.OmsBaseException;
import com.zmn.oms.model.bo.work.redistribute.OrderWorkRedistributeApplyBO;
import com.zmn.oms.model.bo.work.redistribute.OrderWorkRedistributeAuditBO;
import com.zmn.oms.model.entity.detail.OrderDetail;
import com.zmn.oms.model.entity.redistribute.OrderWorkRedistributeApply;
import com.zmn.oms.model.entity.work.OrderWork;

/**
 * 类描述: 为了记录日志抽取出的业务类
 *
 * @author: HuangChao
 * @since: 2022/05/17 17:31
 */
public interface OrderWorkRedistributeAuditBService {


    /**
     * 开始发起审核
     * @param auditBO
     */
    void redistributeAuditStart(OrderWorkRedistributeAuditBO auditBO);

    /**
     * 保存虚假改派异常
     *
     * @param auditBO
     * @param orderWorkRedistributeApply
     */
    void saveSpuriousRedistributeException(OrderWorkRedistributeAuditBO auditBO, OrderWorkRedistributeApply orderWorkRedistributeApply) throws OmsBaseException;

    /**
     * 审核操作
     * @param auditBO
     * @param orderWorkRedistributeApply
     */
    OrderWorkRedistributeApply redistributeAudit(OrderWorkRedistributeAuditBO auditBO, OrderWorkRedistributeApply orderWorkRedistributeApply) throws OmsBaseException;

    /**
     * 转单求助处理
     */
    void redistributeHelpHandle(OrderWorkRedistributeApplyBO redistributeApplyBO, OrderWork orderWork, OrderDetail orderDetail);
}
